package lz.controls.listClasses
{
	import lz.controls.listClasses.ListData; 
	/**
     * ICellRenderer 接口提供单元格渲染器需要的方法和属性。 
	 * 所有用户定义的单元格渲染器都应实现此接口。 
	 * 所有用户定义的单元格渲染器必须扩展 UIComponent 类或 UIComponent 类的子类。
	 */	
	public interface ICellRenderer 
	{		
		/**
		 设置单元格渲染器的 y 坐标
		 */
		function set y(y:Number):void;

		/**
		 * 设置单元格渲染器的 x 坐标
		 */
		function set x(x:Number):void;
		/**
		 * 根据由 width 和 height 参数指定的像素值设置数据的大小。
		 * 参数
		 * width:Number — 单元格渲染器的显示宽度（以像素为单位）。
		 * height:Number — 单元格渲染器的显示高度（以像素为单位）。
		 */
		function setSize(width:Number,height:Number):void;
		/**
         * 获取或设置应用到单元格的列表属性
		 * 例如 index 和 selected 值。 
		 * 单元格变为无效以后，这些列表属性会自动更新。
		 */
		function get listData():ListData;
		function set listData(value:ListData):void;		
		/**
         * 获取或设置一个 Object，该 Object 表示与组件关联的数据。 
		 * 设置该值后，将存储组件数据并使包含组件变为无效。 
		 * 然后，将自动重绘变为无效的组件。
		 * 数据属性表示一个对象，该对象包含单元格代表的 DataProvider 中的项目。 
		 * 通常，数据属性根据组件类型包含标准属性。 
		 * 在 CellRenderer 中的 List 或 ComboBox 组件中，数据包含标签、图标和数据属性；
		 * 在 TileList 中包含标签和源属性；
		 * DataGrid 单元格包含每列的值。 
		 * 数据属性还可以包含与特定单元格相关的用户指定的数据。 
		 * 用户可以针对组件扩展 CellRenderer 以在呈现单元格时利用数据的不同属性。
		 * 此外，可以使用 labelField、labelFunction、iconField、iconFunction、sourceField 和 sourceFunction 元素指定分别使用哪些属性来绘制标签、图标和源。
		 */
		function get data():Object;
		function set data(value:Object):void;
		/**
         * 获取或设置一个布尔值，该值指示是否已选择当前单元格。 
		 * true 值指示已选择当前单元格；
		 * false 值指示未选择当前单元格。
		 */
        function get selected():Boolean;
        function set selected(value:Boolean):void;
		/**
		 * 将当前单元格设置为特定的鼠标状态。DataGrid 需要该方法来设置当用户与单个单元格交互时整行的鼠标状态。
		 * 参数
		 * state:String — 一个字符串，用于指定鼠标状态，例如“up”或“over”。
		 */
		 function setMouseState(state:String):void;
	}
}
